<?php
/**
 * SQL相关类
 * @author xnny
 * @version 1.0
 */

/**
 * SQL相关类
 * @author wangtao
 *
 */
class wt_SQL
{
	/**
	 * 选用指定的数据库进行连接。
	 * 
	 * @param string $host		所连接的MYSQL服务器
	 * @param string $user		连接数据库时使用的用户名
	 * @param string $passw		连接数据库时使用的密码
	 * @param string $db		连接时所指定的数据库
	 * 
	 * @return resource
	 */
	static function connect($host,$user,$passw,$db)
	{
		$link = mysql_connect($host,$user,$passw) or die ("不能连接MYSQL服务器" . mysql_error());
		mysql_query("SET NAMES 'UTF8'");
		mysql_select_db($db,$link) or die ("不能选择数据库" . mysql_error());
		return $link;
	}

	/**
	 * 获得SELECT查询影响行数,可以用于统计查询返回值的个数
	 * @param string $sql	SQL语句
	 * 
	 * @return int
	 */
	static function select_query_num($sql)
	{
		$result = mysql_query($sql);
		if($result)
		{
			return $num_rows = mysql_num_rows($result);
		}
		else
		{
			return $num_rows = 0;
		}
	}

	/**
	 * 获得INSERT，UPDATE 或 DELETE 查询影响的行数
	 * 
	 * @param resource $result
	 * 
	 * @return int
	 */
	static function change_query_num($result)
	{
		if($result)
		{
			return $num_rows = mysql_affected_rows($result);
		}
		else
		{
			return $num_rows = 0;
		}
	}

	/*
	 * 返回查询一行的值，没有返回false
	 */
	static function get_one($sql)
	{
		$result = mysql_query($sql);
		if($result)
		{
			$arr = mysql_fetch_assoc($result);
			return $arr;			
		}
		else
		{
			return false;
		}
	}

	/*
	 * 返回查询的所有值，单列数值数组
	 */
	static function get_arr_num($sql)
	{
		$result = mysql_query($sql);
        if ($result !== false)
        {
            $arr = array();
            while (($row = mysql_fetch_row($result)) || $row)
            {
                $arr[] = $row[0];
            }

            return $arr;
        }
        else
        {
            return false;
        }
	}
	
	/*
	 * 返回查询的所有值
	 */
    static function get_all($sql)
    {
        $result = mysql_query($sql) or die($sql . '<br />' . mysql_error());
        if ($result != false)
        {
            $arr = array();
            while (($row = mysql_fetch_array($result)) || $row)
            {
                $arr[] = $row;
            }
            return $arr;
        }
        else
        {
        	echo '执行出错了';
            return false;
        }
    }
    /*
     * 返回一个数组
     */
    static function get_one_arr($sql)
    {
        $result = mysql_query($sql);
        if ($result !== false)
        {
            $arr = array();
            while (($row = mysql_fetch_row($result)) || $row)
            {
                $arr[] = $row[0];
            }

            return $arr;
        }
        else
        {
        	echo '执行出错了';
            return false;
        }
    }
    
    /*
     * 返回指定行
     * $sql：SQL语句
     * $start：开始的条数
     * $num：返回的条数
     */
    static function selectLimit($sql, $num = 10, $start = 0)
    {
    	if($start == 0)
    	{
    		$sql .= ' LIMIT ' . $num;
    	}
    	else
    	{
    		$sql .= ' LIMIT ' . $start . ', ' . $num;
    	}
    	return wt_SQL::get_all($sql);
    }

    /**
     * 返回一个值
     * @param string $sql
     */
    static function get_str($sql)
    {
    	$result = mysql_query($sql) or die($sql . '<br />' . mysql_error());
		if($result)
		{
			$arr = mysql_fetch_row($result);
			return $arr[0];			
		}
		else
		{
			return false;
		}
    }
    
    /**
     * 返回表格大小
     * @param string $table  表格名
     * @return float
     */
    static function getTableLegth($table)
    {
    	$sql = 'SHOW TABLE STATUS LIKE \'' . $table . '\'';
    	$data = self::Qobject($sql);
    	
    	$total = ($data->Data_length+$data->Index_length)/1048576;
    	return $total;
    }
    
    /**
     * 返回查询的对象
     * @param string $sql	所执行的语句
     */
    static function Qobject($sql)
    {
    	$result = mysql_query($sql);
		return mysql_fetch_object($result);
    }
    
    static function query($sql)
    {
    	//return 
    }
}